//
//  preempos.c
//  complexidade
//  http://br.spoj.pl/problems/PREEMPOS
//  Created by Bruno Dias on 29/05/11.
//  Copyright 2011 __MyCompanyName__. All rights reserved.
//

#include <iostream>
#include <string>

using namespace std;

//Função que define a possivel Raiz.
int indiceIn (string pre, string in) {
    for (int i = 0; i < pre.length(); i++) {
        int pos = in.find(pre.at(i)); 
        if (pos != -1) {
            return pos;
        }
    }
    return 0;
}
//Função que percorre a arvore em Pós-ordem
string PosOrdem (string pre, string in) {
    string subesq, subdir, raiz, palavra;
    int size = in.length();
    int iRaiz = indiceIn(pre, in);
    if (size > 0) {
        raiz = in.substr(iRaiz, 1);
        subesq = in.substr(0, iRaiz);
        subdir = in.substr(iRaiz + 1, size);
        return PosOrdem(pre, subesq) + PosOrdem(pre, subdir) + raiz;
    } else
        return "";
}

int main() {
    int c, size; 
    string pre, in;
    cin >> c;
    while (c > 0) {
        c--;
        //size é uma variável inutil nessa implementação. 
        //Pois utilizo .length() pra identificar o tamanho da string e substrings 
        cin >> size >> pre >> in;
        cout << PosOrdem(pre, in) << "\n";
    }
    return 0;
}

